常用的字符串哈希函数

您所在的位置:网站首页 哈希 字符串 常用的字符串哈希函数

常用的字符串哈希函数

2023-12-31 09:46| 来源: 网络整理| 查看: 265

1、简介

本文将介绍什么是字符串哈希函数,字符串哈希函数常见用法,以及字符串哈希函数的实现原理和常用算法。

2、概念

哈希之所以广泛存在,是因为它能在绝大多数情况下可以在O(1)的时间复杂度中完成元素的查找。它的核心是数组,如果输入是一个自然数,那么当然可以在常数时间内搜索到自然数所对应的数组元素了。但在工程实践中,要查找的关键字往往都不是自然数,即使是自然数也有可能是很大的值。因此,只要我们提前把关键字转换为在固定较小范围内的自然数,就可以实现常数时间的查找。那么问题来了,如何实现该转换关系呢?这就是哈希函数所要完成的工作。

哈希函数:又称散列函数,是把一段有限二进制串(字符串,整数等)转换为自然数的一种函数。 哈希值:哈希函数输出的最终结果。 字符串哈希函数:输入是字符串的哈希函数。

既然是函数,就有可能出现多对一的情况(多个输入对应同一个哈希值),这种情况称为冲突。没有冲突的哈希函数称为完全哈希函数,但这种函数只在理论分析中出现。为了保证每一个元素对应不同的存储地址,可使用以下两类方法: 链接法:数组元素存储指向链表的指针,链表的每个元素都可以存储一个输入的元素。 开放地址法:所有的元素都存放在散列表中,它不用指针,是计算出要存取的槽序列。

使用哈希函数得到哈希值只是Hash算法的第一步,此外一般还需要进行高位运算和取模运算。

3、常见方法

评价hash函数性能的一个重要指标就是冲突,在相关资源允许的条件下冲突越少hash函数的性能越好。显然,对于字符串哈希函数,



【本文地址】


今日新闻


推荐新闻


    CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3